package com.ld.security.server.admin.modules.ge.util;

import com.ld.security.auth.shiro.util.LoginUtil;
import com.ld.security.common.mybatis.base.vo.DataPerNode;
import com.ld.security.server.admin.modules.ge.constant.GeScopeConstant;
import com.ld.security.server.admin.modules.ge.entity.GeScopeEntity;

import java.util.List;

public class GeScopeUtil {

    /**
     * 查询前
     * @param q
     */
    public static void queryBefore(GeScopeEntity q){
        String userId = LoginUtil.getUserId();

        GeScopeConstant.scopeType scopeType =  q.getScopeType();

        if(scopeType ==GeScopeConstant.scopeType.glbal ){

        }  else  if(scopeType ==GeScopeConstant.scopeType.project ){
            String projectId=  ProjectUtil.getDefProectId();
            q.setProjectId(projectId);
            q.setScopeType(null);
        } else  if(scopeType ==GeScopeConstant.scopeType.user ){
            q.setCrtUser(userId);
            q.setScopeType(null);
        } else {
            //默认全看
            String projectId=  ProjectUtil.getDefProectId();
            q.setProjectId(projectId);

            q.setCrtUser(userId);
            q.setScopeType(GeScopeConstant.scopeType.glbal);
        }

    }

  public static <E extends GeScopeEntity> void queryAfter(List<E> list) {
      String userId = LoginUtil.getUserId();
      for (GeScopeEntity geViewTelVo :list) {
          //创建人才允许修改和删除
          String crtUser =geViewTelVo.getCrtUser();
          DataPerNode vo = new DataPerNode();
          if(crtUser == null || crtUser.equals(userId)){
              vo.setDelete(true);
              vo.setUpdate(true);
          }
          geViewTelVo.setDataPer(vo);



      }
  }
    }
